import { getOptionValueByCodeGlobalOption, getOptionValueByCodeRptGroupOption } from '@/utils/SysOptionsHelper';
import { IsEmpty } from '@/utils/common';
import { color } from 'echarts';

/**
 * 单元格背景颜色
 *【1】是否启用系统选项颜色配置  encolorsetting
 *【2】偏高结果颜色  hresultcolor
 *【3】偏低结果颜色  lresultcolor
 *【4】阳性结果颜色  presultcolor
 *【5】正常结果颜色  mresultcolor
 *【6】弱阳性结果颜包  qresultcolor
 *【7】错误结果颜色  errresultcolor
 *【8】阴性结果颜色  nresultcolor
 *【9】结果标志颜色显示方式 jgbzysxsfs (0:背景色  1:文字颜色)
 */
function calcCellDisplayColor({ row, rowIndex, $rowIndex, column, columnIndex, $columnIndex }) {
  /**偏高【标志】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'H' && column && column.field === 'resultFlag') {
    //查询系统选项偏高显示颜色   背景色还是文字颜色
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const b = getOptionValueByCodeRptGroupOption('jgbzysxsfs');
      const c = getOptionValueByCodeGlobalOption('hresultcolor');
      if (b === '0' || b === 0) {
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      if (b === '1' || b === 1) {
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
    }
    return { color: '#ff0000' };
  }
  /**偏高【结果】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'H' && column && column.field === 'testResult') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const c = getOptionValueByCodeGlobalOption('hresultcolor');
      if (!IsEmpty(c)) {
        return { background: c, color: '#fff' };
      }
    }
    return { background: '#ff0000', color: '#fff' };
  }

  /**偏低【标志】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'L' && column && column.field === 'resultFlag') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const b = getOptionValueByCodeRptGroupOption('jgbzysxsfs');
      const c = getOptionValueByCodeGlobalOption('lresultcolor');
      if (b === '0' || b === 0) {
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      if (b === '1' || b === 1) {
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
    }
    return { color: '#0035ff' };
  }
  /**偏低【结果】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'L' && column && column.field === 'testResult') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const c = getOptionValueByCodeGlobalOption('lresultcolor');
      if (!IsEmpty(c)) {
        return { background: c, color: '#fff' };
      }
    }
    return { background: '#0035ff', color: '#fff' };
  }

  /**阳性【标志】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'P' && column && column.field === 'resultFlag') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const b = getOptionValueByCodeRptGroupOption('jgbzysxsfs');
      const c = getOptionValueByCodeGlobalOption('presultcolor');
      if (b === '0' || b === 0) {
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      if (b === '1' || b === 1) {
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
    }
    return { color: '#0035ff' };
  }
  /**阳性【结果】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'P' && column && column.field === 'testResult') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const c = getOptionValueByCodeGlobalOption('presultcolor');
      if (!IsEmpty(c)) {
        return { background: c, color: '#fff' };
      }
    }
    return { background: '#0035ff', color: '#fff' };
  }

  /**弱阳性【标志】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'Q' && column && column.field === 'resultFlag') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const b = getOptionValueByCodeRptGroupOption('jgbzysxsfs');
      const c = getOptionValueByCodeGlobalOption('qresultcolor');
      if (b === '0' || b === 0) {
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      if (b === '1' || b === 1) {
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
    }
    return { color: '#0035ee' };
  }
  /**弱阳性【结果】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'Q' && column && column.field === 'testResult') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const c = getOptionValueByCodeGlobalOption('qresultcolor');
      if (!IsEmpty(c)) {
        return { background: c, color: '#fff' };
      }
    }
    return { background: '#0035ee', color: '#fff' };
  }

  /**错误【标志】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'E' && column && column.field === 'resultFlag') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const b = getOptionValueByCodeRptGroupOption('jgbzysxsfs');
      const c = getOptionValueByCodeGlobalOption('errresultcolor');
      if (b === '0' || b === 0) {
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      if (b === '1' || b === 1) {
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
    }
    return { color: '#800000' };
  }
  /**错误【结果】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'E' && column && column.field === 'testResult') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const c = getOptionValueByCodeGlobalOption('errresultcolor');
      if (!IsEmpty(c)) {
        return { background: c, color: '#fff' };
      }
    }
    return { background: '#800000', color: '#fff' };
  }

  /**正常【标志】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'M' && column && column.field === 'resultFlag') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const b = getOptionValueByCodeRptGroupOption('jgbzysxsfs');
      const c = getOptionValueByCodeGlobalOption('mresultcolor');
      if (b === '0' || b === 0) {
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      if (b === '1' || b === 1) {
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
    }
    return { color: '#000' };
  }
  /**正常【结果】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'M' && column && column.field === 'testResult') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const c = getOptionValueByCodeGlobalOption('mresultcolor');
      if (!IsEmpty(c)) {
        return { background: c, color: '#fff' };
      }
    }
    return { color: '#000' };
  }

  /**阴性【标志】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'N' && column && column.field === 'resultFlag') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const b = getOptionValueByCodeRptGroupOption('jgbzysxsfs');
      const c = getOptionValueByCodeGlobalOption('nresultcolor');
      if (b === '0' || b === 0) {
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      if (b === '1' || b === 1) {
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
    }
    return { color: '#000' };
  }
  /**阴性【结果】 */
  if (row && row.resultFlag && !IsEmpty(row.resultFlag) && row.resultFlag === 'N' && column && column.field === 'testResult') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    if (a === '1' || a === 1) {
      const c = getOptionValueByCodeGlobalOption('nresultcolor');
      if (!IsEmpty(c)) {
        return { background: c, color: '#fff' };
      }
    }
    return { color: '#000' };
  }

  /**危急值 颜色 */
  if (row && !IsEmpty(row.isAlarm) && row.isAlarm === 1 && column && column.field === 'itemNo') {
    const a = getOptionValueByCodeGlobalOption('encolorsetting');
    const b = getOptionValueByCodeGlobalOption('isalarmcolor');
    const d = getOptionValueByCodeGlobalOption('wjzyssfxswbjys'); /**危急值颜色显示是否为背景颜色 wjzyssfxswbjys */
    if (a === 1 || a === '1') {
      if (!IsEmpty(b)) {
        if (d && (d === '1' || d === 1)) {
          return { background: b, color: '#fff' };
        } else {
          return { color: b };
        }
      }
    }
  }
}

const calcResultFlagColor = (row: any, column: any) => {
  /**出现危急值 颜色优先显示 */
  if (!IsEmpty(row.isAlarm) && row.isAlarm === 1) {
    return calcAlarmCellColor(row, column);
  }
  const a = getOptionValueByCodeGlobalOption('encolorsetting');
  if (a === '1' || a === 1) {
    const b = getOptionValueByCodeRptGroupOption('jgbzysxsfs');
    if (b === '0' || b === 0) {
      /**偏高【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'H') {
        const c = getOptionValueByCodeGlobalOption('hresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**偏低【结果】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'L') {
        const c = getOptionValueByCodeGlobalOption('lresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'P') {
        const c = getOptionValueByCodeGlobalOption('presultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**弱阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'Q') {
        const c = getOptionValueByCodeGlobalOption('qresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**错误【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'E') {
        const c = getOptionValueByCodeGlobalOption('errresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**正常【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'M') {
        const c = getOptionValueByCodeGlobalOption('mresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**阴性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'N') {
        const c = getOptionValueByCodeGlobalOption('nresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
    } else if (b === '1' || b === 1) {
      /**偏高【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'H') {
        const c = getOptionValueByCodeGlobalOption('hresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**偏低【结果】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'L') {
        const c = getOptionValueByCodeGlobalOption('lresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'P') {
        const c = getOptionValueByCodeGlobalOption('presultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**弱阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'Q') {
        const c = getOptionValueByCodeGlobalOption('qresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**错误【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'E') {
        const c = getOptionValueByCodeGlobalOption('errresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**正常【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'M') {
        const c = getOptionValueByCodeGlobalOption('mresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**阴性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'N') {
        const c = getOptionValueByCodeGlobalOption('nresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
    } else {
      /**偏高【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'H') {
        const c = getOptionValueByCodeGlobalOption('hresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**偏低【结果】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'L') {
        const c = getOptionValueByCodeGlobalOption('lresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'P') {
        const c = getOptionValueByCodeGlobalOption('presultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**弱阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'Q') {
        const c = getOptionValueByCodeGlobalOption('qresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**错误【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'E') {
        const c = getOptionValueByCodeGlobalOption('errresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**正常【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'M') {
        const c = getOptionValueByCodeGlobalOption('mresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**阴性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'N') {
        const c = getOptionValueByCodeGlobalOption('nresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
    }
  }
  return { color: '#000' }; //默认颜色显示字体颜色
};
const calcTestResultColor = (row: any, column: any) => {
  /**出现危急值 颜色优先显示 */
  if (!IsEmpty(row.isAlarm) && row.isAlarm === 1) {
    return calcAlarmCellColor(row, column);
  }
  const a = getOptionValueByCodeGlobalOption('encolorsetting');
  if (a === '1' || a === 1) {
    const b = getOptionValueByCodeRptGroupOption('jgbzysxsfs');
    if (b === '0' || b === 0) {
      /**偏高【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'H') {
        const c = getOptionValueByCodeGlobalOption('hresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**偏低【结果】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'L') {
        const c = getOptionValueByCodeGlobalOption('lresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'P') {
        const c = getOptionValueByCodeGlobalOption('presultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**弱阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'Q') {
        const c = getOptionValueByCodeGlobalOption('qresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**错误【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'E') {
        const c = getOptionValueByCodeGlobalOption('errresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**正常【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'M') {
        const c = getOptionValueByCodeGlobalOption('mresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**阴性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'N') {
        const c = getOptionValueByCodeGlobalOption('nresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
    } else if (b === '1' || b === 1) {
      /**偏高【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'H') {
        const c = getOptionValueByCodeGlobalOption('hresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**偏低【结果】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'L') {
        const c = getOptionValueByCodeGlobalOption('lresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'P') {
        const c = getOptionValueByCodeGlobalOption('presultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**弱阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'Q') {
        const c = getOptionValueByCodeGlobalOption('qresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**错误【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'E') {
        const c = getOptionValueByCodeGlobalOption('errresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**正常【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'M') {
        const c = getOptionValueByCodeGlobalOption('mresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**阴性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'N') {
        const c = getOptionValueByCodeGlobalOption('nresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
    } else {
      /**偏高【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'H') {
        const c = getOptionValueByCodeGlobalOption('hresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**偏低【结果】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'L') {
        const c = getOptionValueByCodeGlobalOption('lresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'P') {
        const c = getOptionValueByCodeGlobalOption('presultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**弱阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'Q') {
        const c = getOptionValueByCodeGlobalOption('qresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**错误【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'E') {
        const c = getOptionValueByCodeGlobalOption('errresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**正常【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'M') {
        const c = getOptionValueByCodeGlobalOption('mresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**阴性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'N') {
        const c = getOptionValueByCodeGlobalOption('nresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
    }
  }
  return { color: '#000' }; //默认颜色显示字体颜色
};
const calcItemNoColor = (row: any, column: any) => {
  return calcAlarmCellColor(row, column);
};

const calcAlarmTextColor = (row: any, column: any) => {
  const a = getOptionValueByCodeGlobalOption('encolorsetting');
  if (a === '1' || a === 1) {
    const b = getOptionValueByCodeRptGroupOption('jgbzysxsfs');
    if (b === '0' || b === 0) {
      /**偏高【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'H') {
        const c = getOptionValueByCodeGlobalOption('hresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**偏低【结果】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'L') {
        const c = getOptionValueByCodeGlobalOption('lresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'P') {
        const c = getOptionValueByCodeGlobalOption('presultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**弱阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'Q') {
        const c = getOptionValueByCodeGlobalOption('qresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**错误【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'E') {
        const c = getOptionValueByCodeGlobalOption('errresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**正常【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'M') {
        const c = getOptionValueByCodeGlobalOption('mresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**阴性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'N') {
        const c = getOptionValueByCodeGlobalOption('nresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
    } else if (b === '1' || b === 1) {
      /**偏高【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'H') {
        const c = getOptionValueByCodeGlobalOption('hresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**偏低【结果】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'L') {
        const c = getOptionValueByCodeGlobalOption('lresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'P') {
        const c = getOptionValueByCodeGlobalOption('presultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**弱阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'Q') {
        const c = getOptionValueByCodeGlobalOption('qresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**错误【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'E') {
        const c = getOptionValueByCodeGlobalOption('errresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**正常【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'M') {
        const c = getOptionValueByCodeGlobalOption('mresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
      /**阴性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'N') {
        const c = getOptionValueByCodeGlobalOption('nresultcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        }
      }
    } else {
      /**偏高【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'H') {
        const c = getOptionValueByCodeGlobalOption('hresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**偏低【结果】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'L') {
        const c = getOptionValueByCodeGlobalOption('lresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'P') {
        const c = getOptionValueByCodeGlobalOption('presultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**弱阳性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'Q') {
        const c = getOptionValueByCodeGlobalOption('qresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**错误【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'E') {
        const c = getOptionValueByCodeGlobalOption('errresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**正常【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'M') {
        const c = getOptionValueByCodeGlobalOption('mresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
      /**阴性【标志】 */
      if (!IsEmpty(row.resultFlag) && row.resultFlag === 'N') {
        const c = getOptionValueByCodeGlobalOption('nresultcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        }
      }
    }
  }
  return { color: '#000' }; //默认颜色显示字体颜色
};

const calcAlarmCellColor = (row: any, column: any) => {
  if (!IsEmpty(row.isAlarm) && (row.isAlarm === '1' || row.isAlarm === 1)) {
    if (!IsEmpty(row.colorFor) && row.colorFor === '1') {
      /**显示为背景颜色 */
      if (!IsEmpty(row.catchColor)) {
        return { background: row.catchColor, color: '#fff' };
      } else {
        /**走系统默认颜色 */
        //isalarmcolor
        const a = getOptionValueByCodeGlobalOption('encolorsetting');
        if (a === '0' || a === 0) {
          return { background: '#ff0000', color: '#fff' }; //不启用，默认红色
        }
        if (a === '1' || a === 1) {
          const c = getOptionValueByCodeGlobalOption('isalarmcolor');
          if (!IsEmpty(c)) {
            return { background: c, color: '#fff' };
          } else {
            return { background: '#ff0000', color: '#fff' }; //为空，默认红色
          }
        }
      }
    } else if (!IsEmpty(row.colorFor) && row.colorFor === '2') {
      /**显示为字体颜色 */
      if (!IsEmpty(row.catchColor)) {
        return { color: row.catchColor };
      } else {
        /**走系统默认颜色 */
        //isalarmcolor
        const a = getOptionValueByCodeGlobalOption('encolorsetting');
        if (a === '0' || a === 0) {
          return { color: '#ff0000' }; //不启用，默认红色
        }
        if (a === '1' || a === 1) {
          const c = getOptionValueByCodeGlobalOption('isalarmcolor');
          if (!IsEmpty(c)) {
            return { color: c };
          } else {
            return { color: '#ff0000' }; //为空，默认红色
          }
        }
      }
    } else {
      /**走系统默认颜色 */
      const aaAlarm = getOptionValueByCodeGlobalOption('wjzyssfxswbjys');
      if (aaAlarm === '1' || aaAlarm === 1) {
        /**危急值显示为背景颜色 */
        const c = getOptionValueByCodeGlobalOption('isalarmcolor');
        if (!IsEmpty(c)) {
          return { background: c, color: '#fff' };
        } else {
          return { background: '#ff0000', color: '#fff' }; //为空，默认红色
        }
      } else {
        /**危急值显示为背景颜色 */
        const c = getOptionValueByCodeGlobalOption('isalarmcolor');
        if (!IsEmpty(c)) {
          return { color: c };
        } else {
          return { color: '#ff0000' }; //为空，默认红色
        }
      }
    }
  }
  return { color: '#000' };
};

function calcCellDisplayColorV2({ row, rowIndex, $rowIndex, column, columnIndex, $columnIndex }) {
  if (IsEmpty(row) || IsEmpty(row.resultFlag)) {
    return { color: '#000' };
  }
  switch (column.field) {
    case 'resultFlag':
      return calcResultFlagColor(row, column);
      break;
    case 'testResult':
      return calcTestResultColor(row, column);
      break;
    case 'itemNo':
      return calcItemNoColor(row, column);
      break;
    case 'alarmText':
      return calcAlarmCellColor(row, column);
      break;
    default:
      break;
  }
  return { color: '#000' };
}

/**
 * 计算结果的偏高偏低
 * 报告单元参数
 *【1】主界面按以上参数显示 zjmaccsxs
 *【2】偏高结果标志 pgjgbz
 *【3】偏低结果标志 pdjgbz
 *【4】阳性结果标志 yxjgbz
 *【5】弱阳结果标志 ryxjgbz
 *【6】正常结果标志 zcjgbz
 *【7】阴性结果标志 nxjgbz
 *【8】错误结果标志 cwjgbz
 * @val 结果标志
 */
function calcResultFlag(val) {
  const a = getOptionValueByCodeRptGroupOption('zjmaccsxs');
  if (a === '1' || a === 1) {
    if (val === 'H') {
      const b = getOptionValueByCodeRptGroupOption('pgjgbz');
      if (!IsEmpty(b)) {
        return b;
      }
      return '↑';
    }
    if (val === 'L') {
      const b = getOptionValueByCodeRptGroupOption('pdjgbz');
      if (!IsEmpty(b)) {
        return b;
      }
      return '↓';
    }
    if (val === 'P') {
      const b = getOptionValueByCodeRptGroupOption('yxjgbz');
      if (!IsEmpty(b)) {
        return b;
      }
      return '+';
    }
    if (val === 'Q') {
      const b = getOptionValueByCodeRptGroupOption('ryxjgbz');
      if (!IsEmpty(b)) {
        return b;
      }
      return '±';
    }
    if (val === 'M') {
      const b = getOptionValueByCodeRptGroupOption('zcjgbz');
      if (!IsEmpty(b)) {
        return b;
      }
      return '';
    }
    if (val === 'E') {
      const b = getOptionValueByCodeRptGroupOption('cwjgbz');
      if (!IsEmpty(b)) {
        return b;
      }
      return '×';
    }
    if (val === 'N') {
      const b = getOptionValueByCodeRptGroupOption('nxjgbz');
      if (!IsEmpty(b)) {
        return b;
      }
      return '-';
    }
  }
  if (val === 'H') {
    return '↑';
  }
  if (val === 'L') {
    return '↓';
  }
  if (val === 'P') {
    return '+';
  }
  if (val === 'Q') {
    return '±';
  }
  if (val === 'N') {
    return '-';
  }
  if (val === 'E') {
    return '×';
  }
  if (val === 'M') {
    return '';
  }
  return '';
}

export { calcCellDisplayColor, calcCellDisplayColorV2, calcResultFlag };
